import axios from 'axios'

// 创建一个axios的对象
const instance = axios.create({
  baseURL: 'http://localhost:9001', // 会再发送请求的	时候拼接在url参数面前
  timeout: 20000
})

// 请求配置
instance.interceptors.request.use((config) => {
  // config.heads.token = '123456'
  return config;
}, (err) => {
  return Promise.reject(err);
});

// 响应配置
instance.interceptors.response.use(
  res => Promise.resolve(res.data),    
  err => Promise.reject(err)
);

// instance.interceptors.response.use(res => {
//   // return response;
//     if(res.code === 20000) {            
//       return Promise.resolve(res);        
//     }else {            
//       return Promise.reject(res);        
//     }  
//   }, 
//   err => {
//     // 配置状态码
//     return Promise.reject(err);
//   }
// );


/**
 * 具体方法的封装：
 * @param {*} url 
 * @param {*} params 
 * @returns 
 */
export const AxiosGet = (url, params) => {
  return new Promise((resolve, reject) => {
    instance.get(url, {params}).then(res => {
      resolve(res.data)
    }).catch(err => {
      reject(err.data)
    })
  })
}

export const AxiosPost = (url, data) => {
  return new Promise((resolve, reject) => {
    instance.post(url, data).then(res => resolve(res.data) ).catch(err => reject(err.data))
  })
  // return instance.post(url, data);
}

export const AxiosDel = (url) => {
  return new Promise((resolve, reject) => {
    instance.delete(url).then(res => resolve(res.data)).catch(err => reject(err.data))
  })
  // return instance.delete(url)
}

export const AxiosPut = (url, data) => {
  return Promise((resolve, reject) => {
    instance.put(url, data).then(res => resolve(res.data)).catch(err => reject(err.data))
  })
  // return instance.put(url, data)
}





/**
 * ddefine:
 * import { AxiosGet } from '../api/http'
 * export const getList = param => AxiosGet('https://xxx', param);
 * 
 * use:
 * import xxx
 * getList({ type: 0, sort: 1 }).then(res => {})
 * 
 */
